/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package scm.server;

import scm.message.Message;
import scm.message.GestorMensaje;
import scm.client.MailClient;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JTextField;

/**
 *
 * @author Herlan
 */
public class MailServer {

    private GestorMensaje gestor;

    public MailServer(){
        
    }

    public MailServer(Object sender, Object destinatario, Object asunto, Object mensaje){
        this.sender = sender;
        this.destinatario = destinatario;
        this.asunto = asunto;
        this.mensaje = mensaje;
	gestor = new GestorMensaje((JTextField)sender, (JTextField)destinatario,(JTextField)asunto,(JTextField)mensaje);
    }

    public int getCantidadMensaje(String nombre){
        return gestor.Cantidad(nombre);
    }

//    public Message getSiguienteMensaje(String nombre){
//        ArrayList al = gestor.SiguienteMessage(nombre);
//        index = (index>=al.size())? 1 : index + 1;
//        int count =1;
//        Iterator It = al.iterator();
//
//        while (It.hasNext()){
//            Message m = null;
//            String tmp = It.next().toString();
//            if( count == index){
//                String[] datos = tmp.split(",");
//                Contenido contenido = new Contenido(datos[3], datos[4]);
//
//                Usuario s = new Usuario(datos[1]);
//                Usuario d = new Usuario(datos[2]);
//                Cabecera cabecera = new Cabecera(s, d);
//
//                m = new Message(cabecera, contenido);
//
//                return m;
//            }
//            count ++;
//        }
//
//        return null;
//    }

    public void post(Message m){
        MailClient cliente = new MailClient(sender, destinatario, asunto, mensaje);
        int clave = getCantidadMensaje(m.obtenerDestinatarioMensaje());
        //cliente.reciveMessage(m);
        gestor.Adicionar(clave, m);
    }

    public void AbrirArchivoMensaje(){
        gestor.Abrir();
    }

    public void siguiente(String nombre){
        gestor.Siguiente(nombre);
    }

    private Object sender;
    private Object destinatario;
    private Object asunto;
    private Object mensaje;

    private int index=0;

//    private Lista clientList = null;
//
//
//	public MailServer(){
//		clientList = new Lista();
//	}
//
//	public int getCantidadMensaje(String nombre){
//		MailClient client = (MailClient)clientList.devolver(nombre);
//		return client.checkMessage();
//	}
//
//	public Message getSiguienteMensaje(String nombre){
//		MailClient client = (MailClient)clientList.devolver(nombre);
//		return client.readNextMessage();
//	}
//
//	public void post(Message m){
//		if (clientList.Contiene(m.obtenerDestinatarioMensaje())){
//			MailClient client= (MailClient)clientList.devolver(m.obtenerDestinatarioMensaje());
//			client.reciveMessage(m);
//			System.out.println("Mail From:"+m.obtenerSenderMensaje()+" To:"+m.obtenerDestinatarioMensaje());
//		}
//	}
//
//	public void conect(MailClient client){
//		clientList.addicionar(client.toString(), client);
//	}

//    ArchivoCliente ar;
//    public MailServer(Object nombre, Object usuario, Object pas) {
//        ar = new ArchivoCliente((JTextField)nombre, (JTextField)usuario , (JTextField)pas);
//    }
//
//    int getMessagesWaiting (String name){
//        return ar.Cantidad(name);
//    }
//
//    void post (Message message){
//
//        MailClient client =
////        if (clientList.Contiene(m.obtenerDestinatarioMensaje())){
////            MailClient client= (MailClient)clientList.devolver(m.obtenerDestinatarioMensaje());
////            client.reciveMessage(m);
////            System.out.println("Mail From:"+m.obtenerSenderMensaje()+" To:"+m.obtenerDestinatarioMensaje());
////        }
//    }
//
//    void getNextMessage (String name){
//        ar.SiguienteMensaje(name);
//    }
//
//    public void abrirServer(){
//        ar.Abrir();
//    }
}
